HAL PLAY types migration

This section provides information about the HAL PLAY types migration.

HAL PLAY callback ID type definition

HAL1

HAL2

typedef enum
{
  HAL_PLAY_SW_TRIGGER_WRITE_CPLT_CB_ID,
  HAL_PLAY_EDGE_TRIGGER_WRITE_CPLT_CB_ID,
  HAL_PLAY_LUT_OUTPUT_RISING_CB_ID,
  HAL_PLAY_LUT_OUTPUT_FALLING_CB_ID,
  HAL_PLAY_MSPINIT_CB_ID,
  HAL_PLAY_MSPDEINIT_CB_ID
} HAL_PLAY_CallbackIDTypeDef;
  • Removed from HAL2 : the callback registration is managed by dedicated functions for each PLAY event. For more details, see : HAL PLAY register callback

  • HAL_PLAY_MSPINIT_CB_ID and HAL_PLAY_MSPDEINIT_CB_ID are removed because the functions HAL_PLAY_MspInit() and HAL_PLAY_MspDeInit() are removed. For more details, see : HAL PLAY init configuration details.

Related concepts:


HAL PLAY state type definition

HAL1

HAL2

typedef enum
{
  HAL_PLAY_STATE_RESET,
  HAL_PLAY_STATE_INIT,
  HAL_PLAY_STATE_READY,
  HAL_PLAY_STATE_BUSY
} HAL_PLAY_StateTypeDef;
typedef enum
{
  HAL_PLAY_STATE_RESET,
  HAL_PLAY_STATE_INIT,
  HAL_PLAY_STATE_IDLE,
  HAL_PLAY_STATE_ACTIVE
} hal_play_state_t;

Related concepts:


HAL PLAY input multiplexer source type definition

The enumeration naming changed from HAL_PLAY_IN_SourceTypeDef in HAL1 to hal_play_in_source_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY1_IN_ADC1_AWD1_MUX3,
               .
               .
               .
  HAL_PLAY_IN_SOURCE_INVALID,
} HAL_PLAY_IN_SourceTypeDef;
typedef enum
{
  HAL_PLAY1_IN_ADC1_AWD1_MUX3,
               .
               .
               .
  HAL_PLAY_IN_SOURCE_INVALID,
} hal_play_in_source_t;

Related concepts:


HAL PLAY LUT clock gate source type definition

The enumeration naming changed from HAL_PLAY_LUT_ClkGateSourceTypeDef in HAL1 to hal_play_lut_clk_gate_source_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_LUT_CLK_GATE_FILTER0,
                .
                .
                .
  HAL_PLAY_LUT_CLK_GATE_SWTRIG15
} HAL_PLAY_LUT_ClkGateSourceTypeDef;
typedef enum
{
  HAL_PLAY_LUT_CLK_GATE_FILTER0,
                .
                .
                .
  HAL_PLAY_LUT_CLK_GATE_SWTRIG15
} hal_play_lut_clk_gate_source_t;

Related concepts:


HAL PLAY input multiplexer type definition

The enumeration naming changed from HAL_PLAY_INTypeDef in HAL1 to hal_play_in_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_IN0,
        .
        .
        .
  HAL_PLAY_IN15
} HAL_PLAY_INTypeDef;
typedef enum
{
  HAL_PLAY_IN0,
        .
        .
        .
  HAL_PLAY_IN15
} hal_play_in_t;

Related concepts:


HAL PLAY LUT type definition

The enumeration naming changed from HAL_PLAY_LUTTypeDef in HAL1 to hal_play_lut_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_LUT0,
        .
        .
        .
  HAL_PLAY_LUT15
} HAL_PLAY_LUTTypeDef;
typedef enum
{
  HAL_PLAY_LUT0,
        .
        .
        .
  HAL_PLAY_LUT15
} hal_play_lut_t;

Related concepts:


HAL PLAY LUT input type definition

The enumeration naming changed from HAL_PLAY_LUT_InputTypeDef in HAL1 to hal_play_lut_input_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_LUT_INPUT0,
  HAL_PLAY_LUT_INPUT1,
  HAL_PLAY_LUT_INPUT2,
  HAL_PLAY_LUT_INPUT3
} HAL_PLAY_LUT_InputTypeDef;
typedef enum
{
  HAL_PLAY_LUT_INPUT0,
  HAL_PLAY_LUT_INPUT1,
  HAL_PLAY_LUT_INPUT2,
  HAL_PLAY_LUT_INPUT3
} hal_play_lut_input_t;

Related concepts:


HAL PLAY LUT input source type definition

The enumeration naming changed from HAL_PLAY_LUT_InputSourceTypeDef in HAL1 to hal_play_lut_input_source_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_LUT_INPUT_LUT0_OUT_DIRECT,
                    .
                    .
                    .
  HAL_PLAY_LUT_INPUT_FILTER15
} HAL_PLAY_LUT_InputSourceTypeDef;
typedef enum
{
  HAL_PLAY_LUT_INPUT_LUT0_OUT_DIRECT,
                    .
                    .
                    .
  HAL_PLAY_LUT_INPUT_FILTER15
} hal_play_lut_input_source_t;

Related concepts:


HAL PLAY output multiplexer type definition

The enumeration naming changed from HAL_PLAY_OUTTypeDef in HAL1 to hal_play_out_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_OUT0,
         .
         .
         .
  HAL_PLAY_OUT15
} HAL_PLAY_OUTTypeDef;
typedef enum
{
  HAL_PLAY_OUT0,
         .
         .
         .
  HAL_PLAY_OUT15
} hal_play_out_t;

Related concepts:


HAL PLAY edge detection mode type definition

The enumeration naming changed from HAL_PLAY_EdgeDetectionModeTypeDef in HAL1 to hal_play_edge_detection_mode_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_EDGE_DETECTION_BYPASSED,
  HAL_PLAY_EDGE_DETECTION_FALLING,
  HAL_PLAY_EDGE_DETECTION_RISING,
  HAL_PLAY_EDGE_DETECTION_RISING_FALLING
} HAL_PLAY_EdgeDetectionModeTypeDef;
typedef enum
{
  HAL_PLAY_EDGE_DETECTION_BYPASSED,
  HAL_PLAY_EDGE_DETECTION_FALLING,
  HAL_PLAY_EDGE_DETECTION_RISING,
  HAL_PLAY_EDGE_DETECTION_RISING_FALLING
} hal_play_edge_detection_mode_t;

Related concepts:


HAL PLAY polling edge trigger type definition

The enumeration naming changed from HAL_PLAY_PollingEdgeTriggerTypeDef in HAL1 to hal_play_polling_edge_trigger_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_POLLING_FOR_ALL_EDGES,
  HAL_PLAY_POLLING_FOR_ANY_EDGE
} HAL_PLAY_PollingEdgeTriggerTypeDef;
typedef enum
{
  HAL_PLAY_POLLING_FOR_ALL_EDGES,
  HAL_PLAY_POLLING_FOR_ANY_EDGE
} hal_play_polling_edge_trigger_t;

Related concepts:


HAL PLAY software trigger state type definition

The enumeration naming changed from HAL_PLAY_SWTriggerStateTypeDef in HAL1 to hal_play_sw_trigger_state_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef enum
{
  HAL_PLAY_SW_TRIGGER_RESET,
  HAL_PLAY_SW_TRIGGER_SET
} HAL_PLAY_SWTriggerStateTypeDef;
typedef enum
{
  HAL_PLAY_SW_TRIGGER_RESET,
  HAL_PLAY_SW_TRIGGER_SET
} hal_play_sw_trigger_state_t;

Related concepts:


HAL PLAY edge trigger configuration type definition

The enumeration naming changed from HAL_PLAY_EdgeTriggerConfTypeDef in HAL1 to hal_play_edge_trigger_config_t in HAL2. But the content remains the same.

HAL1

HAL2

typedef struct
{
  uint32_t lut_out_falling_mask;
  uint32_t lut_out_rising_mask;
} HAL_PLAY_EdgeTriggerConfTypeDef;
typedef struct
{
  uint32_t lut_out_falling_mask;
  uint32_t lut_out_rising_mask;
} hal_play_edge_trigger_config_t;

Related concepts:


HAL PLAY handle type definition

HAL1

HAL2

HAL_PLAY_HandleTypeDef;
hal_play_handle_t;

HAL PLAY callback pointers

HAL1

HAL2

pPLAY_CallbackTypeDef()
hal_play_cb_t()
pPLAY_LUTOutputCallbackTypeDef()
hal_play_lut_output_cb_t()

HAL PLAY input multiplexer configuration type definition

HAL1

HAL2

typedef struct
{
  uint32_t                          min_pulse_width;
  HAL_PLAY_EdgeDetectionModeTypeDef mode;
  HAL_PLAY_IN_SourceTypeDef         source;
} HAL_PLAY_IN_ConfTypeDef;
typedef struct
{
  uint32_t                       min_pulse_width;
  hal_play_edge_detection_mode_t mode;
  hal_play_in_source_t           source;
} hal_play_in_config_t;

Related concepts:


HAL PLAY LUT configuration type definition

HAL1

HAL2

typedef struct
{
  HAL_PLAY_LUTTypeDef               lut;
  uint32_t                          truth_table;
  HAL_PLAY_LUT_InputSourceTypeDef   input_source[HAL_PLAY_LUT_INPUT_SOURCE_NBR];
  HAL_PLAY_LUT_ClkGateSourceTypeDef clk_gate_source;
} HAL_PLAY_LUT_ConfTypeDef;
typedef struct
{
  hal_play_lut_t                 lut;
  uint32_t                       truth_table;
  hal_play_lut_input_source_t    input_source[HAL_PLAY_LUT_INPUT_SOURCE_NBR];
  hal_play_lut_clk_gate_source_t clk_gate_source;
} hal_play_lut_config_t;

Related concepts:


HAL PLAY output configuration type definition

HAL1

HAL2

typedef struct
{
  HAL_PLAY_OUTTypeDef output_mux;
  uint32_t            lut_output;
} HAL_PLAY_OUT_ConfTypeDef;
typedef struct
{
  hal_play_out_t output_mux;
  uint32_t       lut_output;
} hal_play_out_config_t;

Related concepts:


HAL PLAY access control configuration and TrustZone type definition

HAL1

HAL2

In HAL1, HAL_PLAY_AccessControlConfTypeDef and HAL_PLAY_TrustZone_AccessControlTypeDef structures are used to configure security access levels through HAL_PLAY_ConfigAttributes() function:







typedef struct
{
  HAL_PLAY_TrustZone_AccessControlTypeDef SecureAccess;
  HAL_PLAY_TrustZone_AccessControlTypeDef PrivilegeAccess;
} HAL_PLAY_AccessControlConfTypeDef;
typedef enum
{
  HAL_PLAY_TZ_REG_UNPROTECTED,
  HAL_PLAY_TZ_CONFIG_REG_PROTECTED,
  HAL_PLAY_TZ_ALL_REG_PROTECTED
} HAL_PLAY_TrustZone_AccessControlTypeDef;

In HAL2, access control is split into security structure hal_play_sec_attr_t() and privilege structure hal_play_priv_attr_t() that are applied per item (configuration or all registers). These attributes are used through HAL_PLAY_SetSecAttr() and HAL_PLAY_SetPrivAttr() functions. For more details, see : HAL PLAY secure attributes settings functions migration and HAL PLAY get security and privilege attributes function.

typedef enum
{
  HAL_PLAY_NSEC,
  HAL_PLAY_SEC
} hal_play_sec_attr_t;

typedef enum
{
  HAL_PLAY_NPRIV,
  HAL_PLAY_PRIV
} hal_play_priv_attr_t;

#define HAL_PLAY_SEC_ITEM_CONFIG
#define HAL_PLAY_SEC_ITEM_ALL

#define HAL_PLAY_PRIV_ITEM_CONFIG
#define HAL_PLAY_PRIV_ITEM_ALL